WSL2 的开发环境配置 (基础配置, 网络代理, CUDA, Python, Fortran, Latex) |
您所在的位置:网站首页 › esp32 vscode环境配置 › WSL2 的开发环境配置 (基础配置, 网络代理, CUDA, Python, Fortran, Latex) |
每一个将Windows电脑作为主力机的用户, 如果有一定的编程需求, 都会问一个问题: 开发环境是直接在Windows中搭建呢, 还是全部在Linux子系统中搭建? 目前Windows的开发环境也不断进步, 不过Linux在众多涉及与大服务器对接的开发场景中仍是主流. 下面我试图列举将开发环境部署在WSL中的理由: Windows部署开发环境动不动就要重启, 遇到什么毛病也要重启, 重启对简单的远程访问是致命的. 而如果在WSL2这种虚拟机中配置开发环境, source ~/.bashrc 和关掉terminal重开就能解决了. Windows是生活娱乐和阅读办公, WSL是编程开发, 两者分离之后, 文件系统就会比较优雅. LaTeX在Linux中的编译速度是Windows的3-4倍[1].......对于职业开发者来说, 或许Linux系统才是最好的选择. 因为WSL2确实有一些原生系统或者传统虚拟机所不具有的问题, 只能等待微软修bug--这听上去就不太靠谱. 网上大多关于Ubuntu的教程也必须小心使用, 不完全适用于WSL2. 这一篇文章中, 我将基于我的两次安装Ubuntu 22.04的经历, 介绍我在Windows11系统中的WSL2配置流程, 将避开我曾经踩的坑. 大多数不会给细节, 而是导向我参考的教程. 原则1: 能用图形界面就用图形界面, 少用命令行. 原则2: 软件更新日新月异, 参考的教程首选官方 QuickStart 和 Tutorial, 少用CSDN和各路中英文论坛. 基础配置安装 WSL | Microsoft Learn: 下面我的示例发行版都是Ubuntu 22.04.2 LTS. 设置 WSL 开发环境 | Microsoft Learn用Windows资源管理器打开当前目录: explorer.exe . , 末尾的.的意思是打开当前目录. 所有的新建文件夹、复制粘贴文件、新建移动删除文件都可以用资源管理器进行. 比如可以在自己的用户文件名下面新建一个名为Projects的文件夹, 然后将你正在干的活 (写的latex项目, python代码等等)从Windows粘贴进去.下面进入WSL2中的一些具体环境配置. 首先需要注意到一个很重要的脚本文件, 即用户文件夹中的.bashrc. 这一脚本在每次开启WSL的时候都会先运行一遍, 我们经常会需要在这里添加环境变量啥的. 每次修改完.bashrc之后, 要用source ~/,bashrc或者重启terminal使其生效. 网络代理 (Clash)在Windows中的软件配置网络代理, 一般就是127.0.0.1:[port], 其中[port]在各个代理软件中查询. 而在WSL2中稍微有点特殊. 如果仔细观察过Windows资源管理器中的Ubuntu目录的话, 会发现它的开头是\\wsl.localhost\Ubuntu-22.04, 有点类似于局域网. 事实上也确实如此, 在 WSL2 中, 用 Windows 版本的Clash 设置代理, 首先需要打开局域网连接 (Allow LAN), 然后点击旁边的图标就会看到WSL的IP地址, 用这个地址代替常用的127.0.0.1就可以了. 设置代理可以以环境变量的方式进行, 可以直接写入到 .bashrc 文件之中, 就可以每次打开WSL都自动连接Clash代理了. 推荐几个教程: WSL2 配置代理 | MrLeiDeSen's Blog + 在 WSL2 中使用 Clash for Windows 代理连接 - East Monster 个人博客. 关键的环境变量设置如下:host_ip=$(cat /etc/resolv.conf |grep "nameserver" |cut -f 2 -d " ") export http_proxy="http://$host_ip:[端口]" export https_proxy="http://$host_ip:[端口]"Windows 原生运行Linux如何自由访问互联网 WSL2 使用 Clash for - 腾讯云开发者社区-腾讯云 (tencent.com) 还给出了另外两条环境变量, 以及开启关闭WSL2中代理的简便方法. export all_proxy="sock5://192.168.112.1:7890" export ALL_PROXY="sock5://192.168.112.1:7890"第三个参考文章中定义了两个命令 setp 和unsetp, 分别用于在命令行中开启和关闭代理, 非常实用. 如果您是用Clash之外的其他代理软件, 可以参考第一个参考文章. 连接 NVIDIA GPU可以首先看看NVIDIA的官方页面: GPU in Windows Subsystem for Linux (WSL) | NVIDIA Developer安装NVIDIA显卡的WSL驱动, 重点关注两个命令: nvidia-smi和nvcc -V, 分别对应显卡的CUDA驱动和CUDA Toolkit. 安装最新版本的 Windows 驱动, check一下 nvidia-smi命令在cmd和wsl中是否都可以使用.在WSL中直接安装 conda, 里面有常用的包 Installing on Linux — conda 23.1.0 documentation注意需要进行初始化, 一般用的是bash终端, 则conda init bash一些特殊的包, 遇到再下载就好了. 建议把base环境用作日常跑些小程序的Python环境, 当需要部署一些大模型的时候就新建虚拟环境. Python 开发可以全部在 VS code 中完成. 在WSL中进入你的project文件夹; code . 用 VS code 打开文件夹; 安装好python所需插件之后, 在界面右上角可以选择你要用的内核(conda环境)Fortran 的编译器介绍: GNU Fortran - GNU Project 教程: Linux下安装gcc 、g++ 、gfortran编译器 - zhuzhipeng - 博客园 (cnblogs.com). 其中gcc 和g++都是Linux自带的, 只需要安装gfortran编译器即可. 安装好 VS code 中相关插件之后, Fortran 开发也可以全部在 VS code中完成. 只不过右上角的运行是最简单的单程序编译+运行; 复杂的编译链还是需要自己写 makefile文件, 比如先把各个.f90编译, 然后按理想顺序 link 起来, 最后得到一个文件来运行. LaTeX 配置Texlive 2023 安装主要参照官方教程 Quick install - TeX Live - TeX Users Group (tug.org) 中的 Unix 部分, 所需用到的五个命令如下, 最后一个命令运行之后就开启了安装之旅, 需要较长的时间. 安装会自动选择最近的镜像站, 可以先把代理关掉. cd /tmp # working directory of your choice wget https://mirror.ctan.org/systems/texlive/tlnet/install-tl-unx.tar.gz # or curl instead of wget zcat < install-tl-unx.tar.gz | tar xf - cd install-tl- sudo perl ./install-tl --no-interaction # as root or with writable destination注意第四行中的 需要自己填进去, 可以用ls命令看到tmp目录下有一个文件夹, *是一个日期格式的八位数字.关于最后一行命令, 我解释一下和官方教程的不同之处. 在启动安装这一步, 如果你不带上sudo而是直接用 perl ./install-tl --no-interaction, 是会出问题的. 可以先不带上tag--no-interaction, 然后就会进行自定义安装. 第一步就会提示你, 默认的安装文件夹是不可写的.首先在.bashrc文件中设置如下三个环境变量: export MANPATH=${MANPATH}:/usr/local/texlive/2023/texmf-dist/doc/man export INFOPATH=${INFOPATH}:/usr/local/texlive/2023/texmf-dist/doc/info export PATH=${PATH}:/usr/local/texlive/2023/bin/x86_64-linux然后进行一些后续的中文环境配置: 支持中文,需要安装中文包sudo apt-get install texlive-lang-chinese使用更多的字体和软件包sudo apt-get install texlive-latex-base texlive-latex-extra texlive-latex-recommended texlive-fonts-recommended安装XeLaTexsudo apt-get install texlive-xetex更一劳永逸的是学会移植 Windows 系统的中文字体: 参考 在Linux环境下安装texlive_卡拉潇克的博客-CSDN博客, 首先将Windows系统下的字体文件夹C:\Windows\Fonts整个拷贝到linux下的Home文件夹中 (只有个人文件夹有读写权限), 然后按下面命令操作 # 创建一个winfonts文件夹用于存放所有字体 sudo mkdir /usr/share/fonts/winfonts # 将字体从Fonts文件中拷贝到winfonts中 sudo cp ~/Fonts/* /usr/share/fonts/winfonts/ # 进入到字体文件夹 cd /usr/share/fonts/winfonts/ # 修改字体访问权限 sudo chmod 744 * # 回到主目录 cd ~ # 更新字体信息,使其生效 sudo mkfontscale sudo mkfontdir sudo fc-cache -fv中文字体可以用fc-list :lang=zh-cn 来查看在系统中的具体名字, 有了这个字体代号之后, LaTeX中调用中文字体可以见我另一篇文章 Win10环境下LaTeX中文字体的设置 - 知乎 (zhihu.com). 后面想安装新的字体, 也可以将字体文件直接复制到对应位置, 然后按上面流程刷新一下字体缓存. 最后, LaTeX编程同样可以全部在VS code中完成. 导航到你的latex project文件夹, 输入code .命令用VS code打开当前文件夹. VS code安装了Latex workshop 等插件之后就可以进行编译了, 编译链条的设置和Windows完全一样. LaTeX 编译 Debug: xxx.sty not found愉快完成LaTeX的配置之后, 开始编译tex文档, 才暴露出了wsl中一些我从来没有在 Windows 和 macOS 遇到的问题. 首先是刚开始用会出现的一些样式文件找不到的error, 如: ******************************************************** ) (/usr/share/texlive/texmf-dist/tex/latex/enumitem/enumitem.sty) ! LaTeX Error: File `bbm.sty' not found. Type X to quit or to proceed, or enter new name. (Default extension: sty)关于这个坑, 我花了很多时间才跳出来. 比如去网上找它对应的包和文件想着怎么塞进哪个文件夹去, 甚至用一些全局搜索工具来检索这个样式文件到底存不存在. 结果很惊人, 有些第三方库是包含在 CTAN: Package newtx 里面的, 明明在文件夹/usr/local/texmf-dist里面可以找到, 但却偏偏提示not found! 最后我看到 Add/Find Style files in/to latex - Stack Overflow , 才找到了一个比较通用的解决方案. 首先找到这个not found的样式文件所依赖的 package, 我这里就是bbm.sty apt-file -x search '/NAME.sty$'可能会提示你安装apt-file并update, 按提示操作即可, 无权限就在命令前面加一个sudo. 这个命令会搜索到若干个package如下图所示,安装好这个包之后, 再次对你的tex文件进行编译, 你很大概率又会发现有哪个sty文件又是 not found. 没关系, 不断重复上面的三个步骤即可. 直到你解决了所有的问题, 就可以顺利编译了. 给大家展示一下我编译我本科毕业论文时遇到的所有not found的样式文件: bbm.sty, biblatex.sty有些第三方库不包含在CTAN之中, 想安装这些包则可以看texlive - Create a local texmf tree in Ubuntu - TeX - LaTeX Stack Exchange中的高赞回答, tex默认会访问你的~/texmf, 因此可以把第三方库放在~/texmf/tex/latex/里面.LaTeX 编译 Debug: biber 和 biblatex的兼容矩阵 (compatible matrix) 问题在用biber编译参考文献时, 会报以下的错误 INFO - This is Biber 2.19 INFO - Logfile is 'main.blg' INFO - Reading 'main.bcf' ERROR - Error: Found biblatex control file version 3.8, expected version 3.10. This means that your biber (2.19) and biblatex (3.17) versions are incompatible. See compat matrix in biblatex or biber PDF documentation. INFO - ERRORS: 1参照 installing - How to upgrade 'biblatex' properly? - TeX - LaTeX Stack Exchange 安装了texlive-full就好了, 不过这也是一个很长的安装过程了... sudo apt-get install texlive-full尾声最近在WSL中配置一些开源类GPT大模型, 经常会在CUDA方面遇到很多玄学问题让我痛不欲生 ...... 但是 WSL 依然是我非常喜欢的一个Windows的功能, 与 Windows 文件打通 (访问Windows文件夹前面加一个mnt即可), 应用打通 (VS code, Clash); 同时又能互不干扰, 各自在编程开发和日常办公娱乐中发挥自己的长处. 长期使用图像化界面的Windows用户也能过一把命令行系统的瘾. 我对 WSL 的评价就是两个字: 优雅! Windows 11 还有安卓子系统的功能. 集齐了 Windows, Linux 和安卓三个生态, 经历一波大换皮把macOS的许多设计都抄过来了, 如优化系统动画、逐渐统一UI风格、资源管理器的多标签页 (甚至Poweshell也有标签页了)...... 如此一盘大杂烩, 香! 最后, 虽然Win11挺顶的, 但是 Windows 阵营的轻薄笔记本在续航、触控板两方面还是硬伤, 在逼格方面还是缺一点东西. macbook依然是最好的轻薄笔记本, 软硬件协同优化能力强. 参考^LaTeX配置安装大对比:TeXLive/MiKTeX、Windows/WSL、xelatex/lualatex/pdflatex编译器的速度性能详细对比 https://zhuanlan.zhihu.com/p/374491983^【DeepLearning】为Ubuntu配置CUDA+cuDNN环境 - 知乎 https://zhuanlan.zhihu.com/p/419568593^Installing texlive without root permissions from the source files - TeX - LaTeX Stack Exchange https://tex.stackexchange.com/questions/454191/installing-texlive-without-root-permissions-from-the-source-files^linux完全卸载texlive_SimonChenHere的博客-CSDN博客_linux彻底卸载texlive https://blog.csdn.net/qq_40199232/article/details/106505730 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |